User Maintainence Module-
Contains 2 modules - 
1) User
3) User Groups

Tasks Accomplished-
1) User -
	a) Add a new user
	b) Edit a user
	c) Change user's password
	d) Delete user
	e) Displays a list of user information.
2) User Group -
	a) Add a new user group
	b) Edit an existing user group
	c) Delete the user group
	d) Displays a list of user groups
	
Design -
1) UserMaint.aspx page - contains UserMaint.ascx control
2) UserMaint.ascx control has - 
	a) Datagrid - Displays all the user records. The datagrid has the following columns-
	   username, password expiration date, active.
	b) New button (web form) - On clicking the new button, tansfer is made to EditUser.aspx page. 
	c) Edit button (web form) - First select a user record, then on clicking the edit button, transfer 
	   is made to EditUser.aspx page
	d) Change Password button (web form) - First select a user record, then on clicking change password
	   button, on the same page the following are displayed-
	   * Old Password textbox - 
	   * New Password textbox -
	   * Confirm Password textbox -
	   * Save button - Depending on whether the entries are correct or not either a label message is 
	     displayed if they are worng and if correct then all these are disabled .
	   * Cancel button - On clicking this the page is displyed as before, all these are disabled.
	   * Error Message label - Enabled when the entries are worng. 
	e) Remove button (web form) - First select a user record then on clicking the remove button the
	   user record is deleted.
3) EditUser.aspx page - contains EditUser.ascx control
4) EditUser.ascx control has -
	a) A Multipage having the following pages-
		* Profile - has username , password and expiration date.
		* Groups - has a User Group datagrid, to select the groups with which the user is associated with.
		* Demographic - has AddUseperson.ascx control, which is used to select the person or create a new
		  person for whom the user record is being created or edited. 			
	b) Save button (html) - On clicking the save button a new user is created or edited and then transfer 
	   goes to Setup.aspx page.
	c) Close button (web form) - On clicking the close button, tranfer goes to Setup.aspx page.	
	If Edit button is clicked then intially all the field will be filled with the information of the user 
	use information is being edited. If New button is cliked then all the fields are intially empty.
5) UserGroupMaint.aspx page has UserGroupMaint.ascx control
6) UserGroupMaint.ascx control has - 
	a) Datagrid - Displays all the user groups . The datagrid has a user groups column.
	b) New button (web form) - On clicking the new button tranfer is made to EditUserGroup.aspx page.
	c) Edit button (web form) - First select a record , then on clicking the new button tranfer is made
	   to EditUserGroup.aspx page.
	d) Remove button (web form) - First select a record , then on clicking the remove button tranfer
	   is made to EditUserGroup.aspx page.
7) EditUserGroup.aspx page - contains EditUserGroup.ascx control.
8) EditUserGroup.ascx control has -
	a) Groupname textbox 
	b) A Multipage having 
		* Users - has a datgrid which contains users which are in the group, one more datagrid which contains
		  users which are not in the group. There are 2 buttons which can be used to insert or remove records 
		  from these two datagrids.		
		* Access Rights - has a datgrid which contains aceess rights which the group has, one more datagrid
		  which contains access rights which the group does not have. There are 2 buttons which can be used 
		  to insert or remove records from these two datagrids.			   	
	c) Save button () - On clicking the save button transfer is made to Setup.aspx page. 
	d) Cancel button () - On clicking the save button transfer is made to Setup.aspx page. 	
	
Implementation -
A) Web Presentation Layer -
1) UserMaint.ascx - 
	a) BindDatasets() - is used to bind the datagrid to the dataset containing user information.
	b) EnableModifyButtons() - is used to ebable or diable the buttons.
	c) btnNewUser_Click() - handles the New button click.
	d) btnEditUser_Click() - handles the Edit button click.
	e) btnRemoveUser_Click() - handles the Remove button click.
	f) btnChangePassword_Click() handles the Change Password button click.
	g) ShowPassword() - is used to enable the textboxes and buttons for changing the password.
	h) btnOKPassword_Click() - is used to handle the Save button click.
	i) btnCancelPassword_Click() - is use dto handle the Cancel button click.
	j) dgHTUsers_ItemCommand() - is used to enable or diable things when a record is selected in the grid.
	k) DefaultGrid() - is used to set the images for the grid and to enable the buttons.
2) EditUser.ascx -
	a) BindDataSets() - is used to bind the datasets and other fields.
	d) btnClose_Click() - is used to handle the Close button click. 	
	e) BtnDone_Click() - is used to handle the Save button click. 
3) UserGroupMaint.ascx -
	a) EnableModifyButtons() - is used to enable or disable the buttons	
	b)  btnNewGroup_Click( - is used to handle the new button click
	c) btnEditGroup_Click() - is used to handle the edit button click
	d) BindUserGroupGrid() - is used to bind the datagrid
	e) dgGroups_ItemCommand() - is used to enable or diable things when a record is selected in the grid.
	f) btnRemoveGroup_Click() - is used to handle the remove button click
4) EditUserGroup.ascx -
	a) BindDataSets() - is used to bind the datasets to the datagrid.
	b) btnCancel_Click() - is used to handle the Cancel button click. 
	c) btnSave_Click() - is used to handle the Save button click. 
	d) btnAddAccessRights_Click() - is used to handle the button click , by which the accessrights can be 
	   transferred from one datagrid(not in group) to another(in group).
	c) btnRemoveAccessRights_Click() - is used to handle the button click , by which the accessrights can be 
	   transferred from one datagrid(in group) to another(not in group).
	d) btnAddHTUsers_Click() - is used to handle the button click , by which the users can be 
	   transferred from one datagrid(not in group) to another(in group).  
	e) btnRemoveHTUsers_Click() - is used to handle the button click , by which the users can be 
	   transferred from one datagrid(in group) to another(not in group). 
	   
B) Business Layer-
	a) ChangeUserPassword() - is used to change the password.
	b) CreateUser() - is used to create a new user in the database.
	c) DeleteUser() - is used to dalete a user from the database.
	d) EditUser() - is used to edit an existing user.
	e) HTUser() - is used to get a dataset containing a single user information.
	e) HTUsers() - is used to get the users dataset.
	f) UserGroup() - is used to get a dataset containing a single group information.
	f) UserGroups() - is used to get the usergroups dataset.
	g) AccessRights() - is used to get the access rights dataset for a particular group.
	h) NotAccessRights() -  is used to get the access rights dataset not in a particular group.
	i) UserGroupHTUsers() - is used to get the dataset of all the users in a group.
	j) NotUserGroupHTUsers() - is used to get the dataset of all the users not present in a group.
	k) CreateUserGroup() - used to create a new user group.
	l) DeleteUserGroup() - used to delete a user group.
	m) UserGroupPossessesAccessRight() - returns dataset of the access rights that a user group has.
	n) RemoveAccessRightFromUserGroup() - removes an acccess right from the user group.
	o) AddAccessRightToUserGroup() - is used to add acess rights to user group.
	p) HTUserInUserGroup() - is used to get the dataset of the users in a particular group.
	q) RemoveHTUserFromUserGroup() - is used to remove a particular user from the user group.
	r) AddHTUserToUserGroup() - is used to add a particular user to a user group.
   
	
	




	   	  
		